﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DTTB.Common;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.Models.FormBean.NhanVienModel;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.Models.LinQ.NhanVien;
using Webdiyer.WebControls.Mvc;

namespace DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.NhanVienDelegate
{
    public class XeVT_NgayDKDelegate
    {
        private NhanVienDataContext db = new NhanVienDataContext();
        int _UserId = Convert.ToInt32(HttpContext.Current.Session["USERID"]);
        int _DeparmentId = Convert.ToInt32(HttpContext.Current.Session["DEPARTMENT"]);
        DateTime _DateNow = DateTime.Now;
        public IList<Pt_XeVanTai_NgayKiemDinhXe> GetAllXeVT_NgayDK()
        {
            return db.Pt_XeVanTai_NgayKiemDinhXes.Where(p => p.IsDelete == false).ToList();
        }
        
        public Pt_XeVanTai_NgayKiemDinhXe Insert(Pt_XeVanTai_NgayKiemDinhXe obj)
        {
            try
            {

                obj.CreateBy = _UserId;
                obj.CreateDate = _DateNow;
                db.Pt_XeVanTai_NgayKiemDinhXes.InsertOnSubmit(obj);
                db.SubmitChanges();
                return obj;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public Pt_XeVanTai_NgayKiemDinhXe AddNewXeVT_NgayDK(Pt_XeVanTai_NgayKiemDinhXe Luong)
        {
            db.Pt_XeVanTai_NgayKiemDinhXes.InsertOnSubmit(Luong);
            db.SubmitChanges();
            return Luong;
        }

        public bool DeleteXeVT_NgayDK(int ID)
        {
            try
            {
                Pt_XeVanTai_NgayKiemDinhXe LuongNew =
               db.Pt_XeVanTai_NgayKiemDinhXes.Single(p => p.Id == ID);

                db.Pt_XeVanTai_NgayKiemDinhXes.DeleteOnSubmit(LuongNew);
                db.SubmitChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public bool UpdateXeVT_NgayDK(Pt_XeVanTai_NgayKiemDinhXe XeVT_NgayDK)
        {
            try
            {
                Pt_XeVanTai_NgayKiemDinhXe XeVT_NgayDKUpdate =
                    db.Pt_XeVanTai_NgayKiemDinhXes.Single(p => p.Id == XeVT_NgayDK.Id);
                if (XeVT_NgayDKUpdate != null && XeVT_NgayDKUpdate.IsDelete == false)
                {
                    XeVT_NgayDKUpdate.Id = XeVT_NgayDK.Id;
                    XeVT_NgayDKUpdate.IdXeVanTai = XeVT_NgayDK.IdXeVanTai;
                    XeVT_NgayDKUpdate.UpdateDate = XeVT_NgayDK.UpdateDate;
                    XeVT_NgayDKUpdate.UpdateBy = XeVT_NgayDK.UpdateBy;
                    db.SubmitChanges();
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch(Exception)
            {
                return false;
            }
        }
        public Pt_XeVanTai_NgayKiemDinhXe GetXeVT_NgayDKById(string id)
        {
            try
            {
                Pt_XeVanTai_NgayKiemDinhXe item = this.db.Pt_XeVanTai_NgayKiemDinhXes.Single(p => p.Id == Convert.ToInt32(id));
                return item;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public Pt_XeVanTai_NgayKiemDinhXe BuildnewXeVT_NgayDK(XeVT_NgayDKForm form)
        {
            Pt_XeVanTai_NgayKiemDinhXe newXeVT_NgayDK = new Pt_XeVanTai_NgayKiemDinhXe();
            newXeVT_NgayDK.IdXeVanTai = form.IdXeVanTai;
            newXeVT_NgayDK.NgayKiemDinh = form.NgayKiemDinh;
     
            newXeVT_NgayDK.CreateBy = Convert.ToInt32(HttpContext.Current.Session["USERID"]);
            newXeVT_NgayDK.CreateDate = DateTime.Now;
            newXeVT_NgayDK.IsDelete = false;
            return newXeVT_NgayDK;
        }


        public Pt_XeVanTai_NgayKiemDinhXe BuildEditXeVT_NgayDK(XeVT_NgayDKForm form)
        {
            Pt_XeVanTai_NgayKiemDinhXe newXeVT_NgayDK = new Pt_XeVanTai_NgayKiemDinhXe();
            newXeVT_NgayDK.Id = form.Id;
            newXeVT_NgayDK.IdXeVanTai = form.IdXeVanTai;
            newXeVT_NgayDK.NgayKiemDinh = form.NgayKiemDinh;

            newXeVT_NgayDK.UpdateDate = DateTime.Now;
            newXeVT_NgayDK.UpdateBy = Convert.ToInt32(HttpContext.Current.Session["USERID"]);
            return newXeVT_NgayDK;
        }

        public Pt_XeVanTai_NgayKiemDinhXe GetLoaiCongChucIdMax()
        {
            IList<Pt_XeVanTai_NgayKiemDinhXe> list = db.Pt_XeVanTai_NgayKiemDinhXes.ToList();
            return list.Count != 0 ? list.ElementAt(list.Count - 1) : null;
        }

        public XeVT_NgayDKForm ConvertToForm(Pt_XeVanTai_NgayKiemDinhXe obj)
        {
            XeVT_NgayDKForm form = new XeVT_NgayDKForm();
            form.Id = obj.Id;
            form.IdXeVanTai = obj.IdXeVanTai;
            form.NgayKiemDinh = obj.NgayKiemDinh;
            form.UpdateDate = obj.UpdateDate != null ? obj.UpdateDate.Value : DateTime.MinValue;
            form.CreateDate = obj.CreateDate != null ? obj.CreateDate.Value : DateTime.MinValue;
            form.UpdateBy = obj.UpdateBy != null ? obj.UpdateBy.Value : 0;
            form.CreateBy = obj.CreateBy != null ? obj.CreateBy.Value : 0;
            return form;
        }
        public IQueryable<Pt_XeVanTai_NgayKiemDinhXe> GetAll(int IdXeVanTai)
        {
            return db.Pt_XeVanTai_NgayKiemDinhXes.Where(p => p.IsDelete == false && p.IdXeVanTai == IdXeVanTai).OrderByDescending(p => p.CreateBy);
        }
        public SelectList BuildXeVT_NgayDK(int IdXeVT_NgayDK)
        {
            SelectList list = new SelectList(db.dm_TienComs.Where(p => p.IsDelete == false).ToList(), "Id", "TienCom", IdXeVT_NgayDK);
            return list;
        }
        public Pt_XeVanTai_NgayKiemDinhXe ConvertToLinq(XeVT_NgayDKForm form)
        {
            Pt_XeVanTai_NgayKiemDinhXe obj = new Pt_XeVanTai_NgayKiemDinhXe();
            obj.IdXeVanTai = form.IdXeVanTai;
            obj.Id = form.Id;
            obj.NgayKiemDinh =form.NgayKiemDinh;
            return obj;
        }
    }
}